Conozco el operador de mirada negativa detrás (?<!) , pero parece que el motor Javascript utilizado en Expo/React-Native no lo admite. Lo que quiero es implementar lo siguiente
export function processEmbedded(text: string): string { return text.replace(/(?<!!)\[Embedded\]/gm, "![Embedded]"); }Lo que hice fue un poco raro porque lo eliminé y lo volví a agregar.
export function processEmbedded(text: string): string { return text .replace(/!\[Embedded\]/gm, "[Embedded]") .replace(/\[Embedded\]/gm, "![Embedded]"); }Para mis casos, funciona, pero estoy bastante seguro de que hay un caso extremo en el que no funciona.
Puede usar esta solución alternativa usando un grupo de captura:
export function processEmbedded(text: string): string { return text.replace(/(^|[^!])\[Embedded\]/gm, "$1![Embedded]"); } (^|[^!]) coincide con el inicio de la línea o con un carácter que no es ! en primer grupo de captura. En el reemplazo, lo volvimos a colocar usando una referencia inversa $1 .